/**
 * 认证信息处理工具类
 */

// Token 相关存储的键名
export const AUTH_ACCESS_TOKEN_KEY = 'accessToken'
export const AUTH_REFRESH_TOKEN_KEY = 'refreshToken'
export const AUTH_USER_ID_KEY = 'userId'

/**
 * 保存认证信息到本地存储
 * @param {Object} authData - 认证数据
 * @param {string} authData.accessToken - 访问令牌
 * @param {string} authData.refreshToken - 刷新令牌
 * @param {number} authData.userId - 用户ID
 */
export function setAuthInfo(authData) {
  if (authData.accessToken) {
    uni.setStorageSync(AUTH_ACCESS_TOKEN_KEY, authData.accessToken)
  }
  if (authData.refreshToken) {
    uni.setStorageSync(AUTH_REFRESH_TOKEN_KEY, authData.refreshToken)
  }
  if (authData.userId) {
    uni.setStorageSync(AUTH_USER_ID_KEY, authData.userId)
  }
}

/**
 * 获取访问令牌
 * @returns {string} 访问令牌
 */
export function getAccessToken() {
  return uni.getStorageSync(AUTH_ACCESS_TOKEN_KEY)
}

/**
 * 获取刷新令牌
 * @returns {string} 刷新令牌
 */
export function getRefreshToken() {
  return uni.getStorageSync(AUTH_REFRESH_TOKEN_KEY)
}

/**
 * 获取用户ID
 * @returns {number} 用户ID
 */
export function getUserId() {
  return uni.getStorageSync(AUTH_USER_ID_KEY)
}

/**
 * 清除认证信息
 */
export function clearAuthInfo() {
  uni.removeStorageSync(AUTH_ACCESS_TOKEN_KEY)
  uni.removeStorageSync(AUTH_REFRESH_TOKEN_KEY)
  uni.removeStorageSync(AUTH_USER_ID_KEY)
}

/**
 * 检查是否已登录
 * @returns {boolean} 是否已登录
 */
export function isLoggedIn() {
  return !!getAccessToken()
}
